import { createRequest } from '../config/axios.config';

const serviceName = 'evaluation-monitor-center';

export interface EvaluationMonitorCenterAreaListGetDTO {
    cityId?: string;
    keyword?: string;
    level: number;
    provinceId?: string;
}
/**
 * 查询区域列表
 */
export const EvaluationMonitorCenterAreaListGet = createRequest<
    EvaluationMonitorCenterAreaListGetDTO,
    WebResultListAreaVo
>('EvaluationMonitorCenterAreaListGet', ({ cityId, keyword, level, provinceId }) => ({
    url: `/evaluation-monitor-center/area/list`,
    method: 'get',
    params: {
        cityId,
        keyword,
        level,
        provinceId,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuditGetauditdetailGetDTO {
    bizId: string;
    bizType: string;
}
/**
 * 审批详情
 */
export const EvaluationMonitorCenterAuditGetauditdetailGet = createRequest<
    EvaluationMonitorCenterAuditGetauditdetailGetDTO,
    WebResultListAuditDetailVo
>('EvaluationMonitorCenterAuditGetauditdetailGet', ({ bizId, bizType }) => ({
    url: `/evaluation-monitor-center/audit/getAuditDetail`,
    method: 'get',
    params: {
        bizId,
        bizType,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuditListauditGetDTO {
    auditTimeOrder?: string;
    level?: number;
    nodeAuditState?: number;
    pageIndex: number;
    pageSize: number;
    queryType: number;
    schoolType?: number;
    submitTimeOrder?: string;
    surveyId: string;
    tableNameOrInstitutionName?: string;
}
/**
 * 审核列表
 */
export const EvaluationMonitorCenterAuditListauditGet = createRequest<
    EvaluationMonitorCenterAuditListauditGetDTO,
    WebResultPaginationInstitytionPaperAuditListVo
>(
    'EvaluationMonitorCenterAuditListauditGet',
    ({
        auditTimeOrder,
        level,
        nodeAuditState,
        pageIndex,
        pageSize,
        queryType,
        schoolType,
        submitTimeOrder,
        surveyId,
        tableNameOrInstitutionName,
    }) => ({
        url: `/evaluation-monitor-center/audit/listAudit`,
        method: 'get',
        params: {
            auditTimeOrder,
            level,
            nodeAuditState,
            pageIndex,
            pageSize,
            queryType,
            schoolType,
            submitTimeOrder,
            surveyId,
            tableNameOrInstitutionName,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterAuditPassPostDTO {
    requestParam: AuditOperationRequest;
}
/**
 * 通过/批量通过
 */
export const EvaluationMonitorCenterAuditPassPost = createRequest<
    EvaluationMonitorCenterAuditPassPostDTO,
    WebResultString
>('EvaluationMonitorCenterAuditPassPost', ({ requestParam }) => ({
    url: `/evaluation-monitor-center/audit/pass`,
    method: 'post',
    data: requestParam,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuditPassorrejectPostDTO {
    requestParam: AuditOperationRequest;
}
/**
 * 审批/批量审批/全部审批
 */
export const EvaluationMonitorCenterAuditPassorrejectPost = createRequest<
    EvaluationMonitorCenterAuditPassorrejectPostDTO,
    WebResultString
>('EvaluationMonitorCenterAuditPassorrejectPost', ({ requestParam }) => ({
    url: `/evaluation-monitor-center/audit/passOrReject`,
    method: 'post',
    data: requestParam,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuditRejectPostDTO {
    requestParam: AuditOperationRequest;
}
/**
 * 驳回/批量驳回
 */
export const EvaluationMonitorCenterAuditRejectPost = createRequest<
    EvaluationMonitorCenterAuditRejectPostDTO,
    WebResultString
>('EvaluationMonitorCenterAuditRejectPost', ({ requestParam }) => ({
    url: `/evaluation-monitor-center/audit/reject`,
    method: 'post',
    data: requestParam,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuditWithdrawsubmitPostDTO {
    requestParam: SubmitWithdrawRequest;
}
/**
 * 撤回提交
 */
export const EvaluationMonitorCenterAuditWithdrawsubmitPost = createRequest<
    EvaluationMonitorCenterAuditWithdrawsubmitPostDTO,
    WebResultString
>('EvaluationMonitorCenterAuditWithdrawsubmitPost', ({ requestParam }) => ({
    url: `/evaluation-monitor-center/audit/withdrawSubmit`,
    method: 'post',
    data: requestParam,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

/**
 * 获取验证码
 */
export const EvaluationMonitorCenterAuthGetcodeGet = createRequest<
    undefined,
    WebResultVerificationCodeVo
>('EvaluationMonitorCenterAuthGetcodeGet', () => ({
    url: `/evaluation-monitor-center/auth/getCode`,
    method: 'get',
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuthLoginGetDTO {
    account: string;
    accountType: number;
    codeValue: string;
    identity?: number;
    password: string;
    uuid: string;
}
/**
 * 登录
 */
export const EvaluationMonitorCenterAuthLoginGet = createRequest<
    EvaluationMonitorCenterAuthLoginGetDTO,
    WebResultString
>(
    'EvaluationMonitorCenterAuthLoginGet',
    ({ account, accountType, codeValue, identity, password, uuid }) => ({
        url: `/evaluation-monitor-center/auth/login`,
        method: 'get',
        params: {
            account,
            accountType,
            codeValue,
            identity,
            password,
            uuid,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterAuthLogoutGetDTO {
    accessToken?: string;
}
/**
 * 登出
 */
export const EvaluationMonitorCenterAuthLogoutGet = createRequest<
    EvaluationMonitorCenterAuthLogoutGetDTO,
    WebResultString
>('EvaluationMonitorCenterAuthLogoutGet', ({ accessToken }) => ({
    url: `/evaluation-monitor-center/auth/logout`,
    method: 'get',
    data: accessToken,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuthQueryinstitutionroleGetDTO {
    institutionType: number;
}
/**
 * 根据机构类型获取对应角色列表
 */
export const EvaluationMonitorCenterAuthQueryinstitutionroleGet = createRequest<
    EvaluationMonitorCenterAuthQueryinstitutionroleGetDTO,
    WebResultListInstitutionTypeRoleVo
>('EvaluationMonitorCenterAuthQueryinstitutionroleGet', ({ institutionType }) => ({
    url: `/evaluation-monitor-center/auth/queryInstitutionRole`,
    method: 'get',
    params: {
        institutionType,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterAuthResetpwdPostDTO {
    resetPwdRequest: ResetPwdRequest;
}
/**
 * 重置密码
 */
export const EvaluationMonitorCenterAuthResetpwdPost = createRequest<
    EvaluationMonitorCenterAuthResetpwdPostDTO,
    WebResultLong
>('EvaluationMonitorCenterAuthResetpwdPost', ({ resetPwdRequest }) => ({
    url: `/evaluation-monitor-center/auth/resetPwd`,
    method: 'post',
    data: resetPwdRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackAuditpagePostDTO {
    feedbackQueryRequest: FeedbackQueryRequest;
}
/**
 * 意见反馈审核列表
 */
export const EvaluationMonitorCenterFeedbackAuditpagePost = createRequest<
    EvaluationMonitorCenterFeedbackAuditpagePostDTO,
    WebResultPaginationFeedbackVo
>('EvaluationMonitorCenterFeedbackAuditpagePost', ({ feedbackQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedback/auditPage`,
    method: 'post',
    data: feedbackQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackCancelGetDTO {
    id: string;
}
/**
 * 意见反馈撤回
 */
export const EvaluationMonitorCenterFeedbackCancelGet = createRequest<
    EvaluationMonitorCenterFeedbackCancelGetDTO,
    WebResultFeedbackVo
>('EvaluationMonitorCenterFeedbackCancelGet', ({ id }) => ({
    url: `/evaluation-monitor-center/feedback/cancel`,
    method: 'get',
    params: {
        id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackContentsectionlistGetDTO {
    stageId?: number;
    textType?: number;
}
/**
 * 内容板块字典
 */
export const EvaluationMonitorCenterFeedbackContentsectionlistGet = createRequest<
    EvaluationMonitorCenterFeedbackContentsectionlistGetDTO,
    WebResultListString
>('EvaluationMonitorCenterFeedbackContentsectionlistGet', ({ stageId, textType }) => ({
    url: `/evaluation-monitor-center/feedback/contentSectionList`,
    method: 'get',
    params: {
        stageId,
        textType,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackDeleteGetDTO {
    id: string;
}
/**
 * 意见反馈删除
 */
export const EvaluationMonitorCenterFeedbackDeleteGet = createRequest<
    EvaluationMonitorCenterFeedbackDeleteGetDTO,
    WebResultFeedbackVo
>('EvaluationMonitorCenterFeedbackDeleteGet', ({ id }) => ({
    url: `/evaluation-monitor-center/feedback/delete`,
    method: 'get',
    params: {
        id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackDetailGetDTO {
    id: string;
}
/**
 * 意见反馈详情
 */
export const EvaluationMonitorCenterFeedbackDetailGet = createRequest<
    EvaluationMonitorCenterFeedbackDetailGetDTO,
    WebResultFeedbackVo
>('EvaluationMonitorCenterFeedbackDetailGet', ({ id }) => ({
    url: `/evaluation-monitor-center/feedback/detail`,
    method: 'get',
    params: {
        id,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackResppagePostDTO {
    feedbackQueryRequest: FeedbackRespQueryRequest;
}
/**
 * 意见反馈响应列表(查询所有审核通过的记录)
 */
export const EvaluationMonitorCenterFeedbackResppagePost = createRequest<
    EvaluationMonitorCenterFeedbackResppagePostDTO,
    WebResultPaginationFeedbackVo
>('EvaluationMonitorCenterFeedbackResppagePost', ({ feedbackQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedback/respPage`,
    method: 'post',
    data: feedbackQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackSavePostDTO {
    feedbackSaveRequest: FeedbackSaveRequest;
}
/**
 * 意见反馈提交
 */
export const EvaluationMonitorCenterFeedbackSavePost = createRequest<
    EvaluationMonitorCenterFeedbackSavePostDTO,
    WebResultString
>('EvaluationMonitorCenterFeedbackSavePost', ({ feedbackSaveRequest }) => ({
    url: `/evaluation-monitor-center/feedback/save`,
    method: 'post',
    data: feedbackSaveRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackSaverespPostDTO {
    feedbackRespRequest: FeedbackRespRequest;
}
/**
 * 意见反馈响应提交
 */
export const EvaluationMonitorCenterFeedbackSaverespPost = createRequest<
    EvaluationMonitorCenterFeedbackSaverespPostDTO,
    WebResultString
>('EvaluationMonitorCenterFeedbackSaverespPost', ({ feedbackRespRequest }) => ({
    url: `/evaluation-monitor-center/feedback/saveResp`,
    method: 'post',
    data: feedbackRespRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackStagelistGetDTO {
    type?: number;
}
/**
 * 学段字典
 */
export const EvaluationMonitorCenterFeedbackStagelistGet = createRequest<
    EvaluationMonitorCenterFeedbackStagelistGetDTO,
    WebResultListStageSubjectDto
>('EvaluationMonitorCenterFeedbackStagelistGet', ({ type }) => ({
    url: `/evaluation-monitor-center/feedback/stageList`,
    method: 'get',
    params: {
        type,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackSubjectlistGetDTO {
    stageId?: number;
}
/**
 * 学科字典
 */
export const EvaluationMonitorCenterFeedbackSubjectlistGet = createRequest<
    EvaluationMonitorCenterFeedbackSubjectlistGetDTO,
    WebResultListSubjectDto
>('EvaluationMonitorCenterFeedbackSubjectlistGet', ({ stageId }) => ({
    url: `/evaluation-monitor-center/feedback/subjectList`,
    method: 'get',
    params: {
        stageId,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackSubmitpagePostDTO {
    feedbackQueryRequest: FeedbackQueryRequest;
}
/**
 * 意见反馈提交列表
 */
export const EvaluationMonitorCenterFeedbackSubmitpagePost = createRequest<
    EvaluationMonitorCenterFeedbackSubmitpagePostDTO,
    WebResultPaginationFeedbackVo
>('EvaluationMonitorCenterFeedbackSubmitpagePost', ({ feedbackQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedback/submitPage`,
    method: 'post',
    data: feedbackQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackSupervisepagePostDTO {
    feedbackQueryRequest: FeedbackQueryRequest;
}
/**
 * 意见反馈监管列表
 */
export const EvaluationMonitorCenterFeedbackSupervisepagePost = createRequest<
    EvaluationMonitorCenterFeedbackSupervisepagePostDTO,
    WebResultPaginationFeedbackVo
>('EvaluationMonitorCenterFeedbackSupervisepagePost', ({ feedbackQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedback/supervisePage`,
    method: 'post',
    data: feedbackQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackVolumelistGetDTO {
    editorInChief?: string;
    name?: string;
    publishingUnit?: string;
}
/**
 * 册次字典
 */
export const EvaluationMonitorCenterFeedbackVolumelistGet = createRequest<
    EvaluationMonitorCenterFeedbackVolumelistGetDTO,
    WebResultListString
>('EvaluationMonitorCenterFeedbackVolumelistGet', ({ editorInChief, name, publishingUnit }) => ({
    url: `/evaluation-monitor-center/feedback/volumeList`,
    method: 'get',
    params: {
        editorInChief,
        name,
        publishingUnit,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackexportExportPostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 下载明细 课标与教材共用
 */
export const EvaluationMonitorCenterFeedbackexportExportPost = createRequest<
    EvaluationMonitorCenterFeedbackexportExportPostDTO,
    WebResultString
>('EvaluationMonitorCenterFeedbackexportExportPost', ({ feedbackCountQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedbackExport/export`,
    method: 'post',
    data: feedbackCountQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackstatisticsContentsectionPostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 内容板块 课标
 */
export const EvaluationMonitorCenterFeedbackstatisticsContentsectionPost = createRequest<
    EvaluationMonitorCenterFeedbackstatisticsContentsectionPostDTO,
    WebResultListFeedbackCountResultDto
>(
    'EvaluationMonitorCenterFeedbackstatisticsContentsectionPost',
    ({ feedbackCountQueryRequest }) => ({
        url: `/evaluation-monitor-center/feedbackStatistics/contentSection`,
        method: 'post',
        data: feedbackCountQueryRequest,
        headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterFeedbackstatisticsFeedbackcountPostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 反馈数量 课标与教材共用
 */
export const EvaluationMonitorCenterFeedbackstatisticsFeedbackcountPost = createRequest<
    EvaluationMonitorCenterFeedbackstatisticsFeedbackcountPostDTO,
    WebResultListFeedbackCountResultDto
>(
    'EvaluationMonitorCenterFeedbackstatisticsFeedbackcountPost',
    ({ feedbackCountQueryRequest }) => ({
        url: `/evaluation-monitor-center/feedbackStatistics/feedbackCount`,
        method: 'post',
        data: feedbackCountQueryRequest,
        headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterFeedbackstatisticsMapsPostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 地域 课标与教材共用
 */
export const EvaluationMonitorCenterFeedbackstatisticsMapsPost = createRequest<
    EvaluationMonitorCenterFeedbackstatisticsMapsPostDTO,
    WebResultListFeedbackCountResultDto
>('EvaluationMonitorCenterFeedbackstatisticsMapsPost', ({ feedbackCountQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedbackStatistics/maps`,
    method: 'post',
    data: feedbackCountQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackstatisticsPointtoPostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 意见指向对象 课标与教材共用
 */
export const EvaluationMonitorCenterFeedbackstatisticsPointtoPost = createRequest<
    EvaluationMonitorCenterFeedbackstatisticsPointtoPostDTO,
    WebResultListFeedbackCountResultDto
>('EvaluationMonitorCenterFeedbackstatisticsPointtoPost', ({ feedbackCountQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedbackStatistics/pointTo`,
    method: 'post',
    data: feedbackCountQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterFeedbackstatisticsTypePostDTO {
    feedbackCountQueryRequest: FeedbackCountQueryRequest;
}
/**
 * 意见类型 课标与教材共用
 */
export const EvaluationMonitorCenterFeedbackstatisticsTypePost = createRequest<
    EvaluationMonitorCenterFeedbackstatisticsTypePostDTO,
    WebResultListFeedbackCountResultDto
>('EvaluationMonitorCenterFeedbackstatisticsTypePost', ({ feedbackCountQueryRequest }) => ({
    url: `/evaluation-monitor-center/feedbackStatistics/type`,
    method: 'post',
    data: feedbackCountQueryRequest,
    headers: { 'Content-Type': 'application/json', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterInstitutionListGetDTO {
    cityId?: string;
    districtId?: string;
    institutionName?: string;
    institutionType?: number;
    pageIndex: number;
    pageSize: number;
    provinceId?: string;
}
/**
 * 查询机构列表
 */
export const EvaluationMonitorCenterInstitutionListGet = createRequest<
    EvaluationMonitorCenterInstitutionListGetDTO,
    WebResultPaginationInstitutionVo
>(
    'EvaluationMonitorCenterInstitutionListGet',
    ({
        cityId,
        districtId,
        institutionName,
        institutionType,
        pageIndex,
        pageSize,
        provinceId,
    }) => ({
        url: `/evaluation-monitor-center/institution/list`,
        method: 'get',
        params: {
            cityId,
            districtId,
            institutionName,
            institutionType,
            pageIndex,
            pageSize,
            provinceId,
        },
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterMaterialTemporaryurlGetDTO {
    url: string;
}
/**
 * 获取文件下载链接
 */
export const EvaluationMonitorCenterMaterialTemporaryurlGet = createRequest<
    EvaluationMonitorCenterMaterialTemporaryurlGetDTO,
    WebResultString
>('EvaluationMonitorCenterMaterialTemporaryurlGet', ({ url }) => ({
    url: `/evaluation-monitor-center/material/temporaryUrl`,
    method: 'get',
    params: {
        url,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterMaterialUploadPostDTO {
    file: Blob;
    key: string;
}
/**
 * 上传文件
 */
export const EvaluationMonitorCenterMaterialUploadPost = createRequest<
    EvaluationMonitorCenterMaterialUploadPostDTO,
    WebResultUploadVo
>('EvaluationMonitorCenterMaterialUploadPost', ({ key, file }) => ({
    url: `/evaluation-monitor-center/material/upload`,
    method: 'post',
    data: file,
    params: {
        key,
    },
    headers: { 'Content-Type': 'multipart/form-data', 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterUploadQueryExportRateGetDTO {
    key?: string;
}
/**
 * 查询导出进度
 */
export const EvaluationMonitorCenterUploadQueryExportRateGet = createRequest<
    EvaluationMonitorCenterUploadQueryExportRateGetDTO,
    WebResultExportRateVo
>('EvaluationMonitorCenterUploadQueryExportRateGet', ({ key }) => ({
    url: `/evaluation-monitor-center/upload/query/export/rate`,
    method: 'get',
    params: {
        key,
    },
    headers: { 'Service-Name': serviceName },
}));

/**
 * 获取用户信息
 */
export const EvaluationMonitorCenterUserGetuserinfoGet = createRequest<undefined, WebResultUserVo>(
    'EvaluationMonitorCenterUserGetuserinfoGet',
    () => ({
        url: `/evaluation-monitor-center/user/getUserInfo`,
        method: 'get',
        headers: { 'Service-Name': serviceName },
    }),
);

export interface EvaluationMonitorCenterUserGetuserpermissionGetDTO {
    roleId?: string;
}
/**
 * 获取用户权限列表
 */
export const EvaluationMonitorCenterUserGetuserpermissionGet = createRequest<
    EvaluationMonitorCenterUserGetuserpermissionGetDTO,
    WebResultListPermissionDataVo
>('EvaluationMonitorCenterUserGetuserpermissionGet', ({ roleId }) => ({
    url: `/evaluation-monitor-center/user/getUserPermission`,
    method: 'get',
    params: {
        roleId,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface EvaluationMonitorCenterUserUserlistGetDTO {
    account?: string;
    institutionId: string;
    pageIndex: number;
    pageSize: number;
}
/**
 * 获取用户列表
 */
export const EvaluationMonitorCenterUserUserlistGet = createRequest<
    EvaluationMonitorCenterUserUserlistGetDTO,
    WebResultPaginationUserInfoVo
>('EvaluationMonitorCenterUserUserlistGet', ({ account, institutionId, pageIndex, pageSize }) => ({
    url: `/evaluation-monitor-center/user/userList`,
    method: 'get',
    params: {
        account,
        institutionId,
        pageIndex,
        pageSize,
    },
    headers: { 'Service-Name': serviceName },
}));

export interface AreaVo {
    code?: string;
    id?: string;
    level?: number;
    name?: string;
}

export interface AuditDetailVo {
    auditState?: number;
    auditTime?: string;
    id?: string;
    institutionName?: string;
    level?: number;
    opinion?: string;
}

export interface AuditOperationRequest {
    auditType?: number;
    bizType?: string;
    ids?: string[];
    isAllAudit?: number;
    opinion?: string;
}

export interface BookDto {
    bookId?: string;
    bookName?: string;
    editorName?: string;
    volume?: string;
}

export interface CreatorDto {
    cityCode?: string;
    cityId?: string;
    cityName?: string;
    creatorId?: string;
    creatorLevel?: number;
    creatorName?: string;
    creatorOrgId?: string;
    creatorOrgName?: string;
    districtCode?: string;
    districtId?: string;
    districtName?: string;
    provinceCode?: string;
    provinceId?: string;
    provinceName?: string;
}

export interface ExportRateVo {
    consumeTime?: number;
    errorCount?: number;
    rate?: number;
    remark?: string;
    status?: number;
    successCount?: number;
    url?: string;
}

export interface FeedbackCountQueryRequest {
    bookName?: string;
    cityCode?: string;
    creatorLevel?: number;
    districtCode?: string;
    endTime?: string;
    issueOrgId?: string;
    issueOrgName?: string;
    pageIndex?: number;
    pageSize?: number;
    provinceCode?: string;
    queryType?: number;
    questionType?: number;
    schoolId?: string;
    stageId?: string;
    startTime?: string;
    subjectId?: string;
    textType?: number;
    type?: number;
}

export interface FeedbackCountResultDto {
    count?: number;
    rate?: string;
    title?: string;
}

export interface FeedbackQueryRequest {
    auditStatus?: number;
    auditStatusList?: number[];
    bookName?: string;
    creatorLevel?: number;
    creatorOrgName?: string;
    issueOrgId?: string;
    issueOrgName?: string;
    pageIndex?: number;
    pageSize?: number;
    questionType?: number;
    respStatus?: number;
    sortBy?: number;
    stageId?: string;
    subjectId?: string;
    textType?: number;
    type?: number;
}

export interface FeedbackRespQueryRequest {
    bookName?: string;
    creatorLevel?: number;
    issueOrgId?: string;
    issueOrgName?: string;
    pageIndex?: number;
    pageSize?: number;
    respStatus?: number;
    respStatusList?: number[];
    sortBy?: number;
    stageId?: string;
    subjectId?: string;
    textType?: number;
    type?: number;
}

export interface FeedbackRespRequest {
    content?: string;
    feedbackId?: string;
}

export interface FeedbackRespVo {
    content?: string;
    creator?: CreatorDto;
    ctime?: string;
    feedbackId?: string;
    id?: string;
    mtime?: string;
}

export interface FeedbackSaveRequest {
    book?: BookDto;
    contactInformation?: string;
    contactor?: string;
    content?: string;
    contentSectionList?: string[];
    creator?: CreatorDto;
    feedbackProviderIdentity?: number;
    feedbackProviderIdentityDesc?: string;
    feedbackProviderOrgName?: string;
    fileList?: FileDo[];
    id?: string;
    issueOrgName?: string;
    questionDesc?: string;
    questionType?: number;
    stageId?: string;
    stageName?: string;
    subjectId?: string;
    subjectName?: string;
    submitStatus?: number;
    textType?: number;
    textTypeName?: string;
    type?: number;
}

export interface FeedbackVo {
    auditOption?: string;
    auditPassTime?: string;
    auditStatus?: number;
    book?: BookDto;
    contactInformation?: string;
    contactor?: string;
    content?: string;
    contentSectionList?: string[];
    creator?: CreatorDto;
    ctime?: string;
    feedbackProviderIdentity?: number;
    feedbackProviderIdentityDesc?: string;
    feedbackProviderOrgName?: string;
    fileList?: FileDo[];
    id?: string;
    issueOrgIds?: string[];
    issueOrgName?: string;
    mtime?: string;
    questionDesc?: string;
    questionType?: number;
    respList?: FeedbackRespVo[];
    respStatus?: number;
    respTime?: string;
    stageId?: string;
    stageName?: string;
    subjectId?: string;
    subjectName?: string;
    submitStatus?: number;
    submitTime?: string;
    textType?: number;
    textTypeName?: string;
    type?: number;
}

export interface FileDo {
    fullName?: string;
    id?: string;
    ispType?: string;
    name?: string;
    nameSuffix?: string;
    type?: string;
    url?: string;
}

export interface InstitutionTypeRoleVo {
    roleId?: string;
    roleShowName?: string;
}

export interface InstitutionVo {
    cityCode?: string;
    cityId?: string;
    cityName?: string;
    ctime?: string;
    districtCode?: string;
    districtId?: string;
    districtName?: string;
    id?: string;
    institutionName?: string;
    institutionNickName?: string;
    institutionType?: number;
    mtime?: string;
    provinceCode?: string;
    provinceId?: string;
    provinceName?: string;
}

export interface InstitytionPaperAuditListVo {
    auditState?: number;
    auditStateName?: string;
    auditTime?: string;
    id?: string;
    institutionId?: string;
    institutionName?: string;
    level?: number;
    levelName?: string;
    nature?: number;
    natureName?: string;
    schoolType?: number;
    schoolTypeName?: string;
    submitTime?: string;
    tableName?: string;
}

export interface PaginationFeedbackVo {
    pageIndex?: number;
    pageSize?: number;
    rows?: FeedbackVo[];
    total?: number;
    totalPage?: number;
}

export interface PaginationInstitutionVo {
    pageIndex?: number;
    pageSize?: number;
    rows?: InstitutionVo[];
    total?: number;
    totalPage?: number;
}

export interface PaginationInstitytionPaperAuditListVo {
    pageIndex?: number;
    pageSize?: number;
    rows?: InstitytionPaperAuditListVo[];
    total?: number;
    totalPage?: number;
}

export interface PaginationSurveyPaperAuditListVo {
    pageIndex?: number;
    pageSize?: number;
    rows?: SurveyPaperAuditListVo[];
    total?: number;
    totalPage?: number;
}

export interface PaginationUserInfoVo {
    pageIndex?: number;
    pageSize?: number;
    rows?: UserInfoVo[];
    total?: number;
    totalPage?: number;
}

export interface PermissionDataVo {
    children?: PermissionDataVo[];
    permissionKey?: string;
    permissionName?: string;
}

export interface ResetPwdRequest {
    ensurePassword: string;
    newPassword: string;
    oldPassword: string;
}

export interface StageSubjectDto {
    stageId?: string;
    stageName?: string;
    subjectList?: SubjectDto[];
}

export interface Status {
    code?: number;
    desc?: string;
}

export interface SubjectDto {
    subjectId?: string;
    subjectName?: string;
}

export interface SubmitWithdrawRequest {
    bizId?: string;
    bizType?: string;
    currentInstitutionIds?: string[];
    currentUserId?: string;
}

export interface SurveyPaperAuditListVo {
    auditState?: number;
    auditStateName?: string;
    id?: string;
    institutionId?: string;
    institutionName?: string;
    level?: number;
    levelName?: string;
    nature?: number;
    natureName?: string;
    schoolType?: number;
    schoolTypeName?: string;
    submitTime?: string;
    tableName?: string;
}

export interface UploadVo {
    etag?: string;
}

export interface UserInfoVo {
    account?: string;
    userId?: string;
}

export interface UserVo {
    institutionList?: InstitutionVo[];
    needResetPwd?: boolean;
    roleIdList?: string[];
    userId?: string;
    userName?: string;
}

export interface VerificationCodeVo {
    base64?: string;
    uuid?: string;
}

export interface WebResultExportRateVo {
    data?: ExportRateVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultFeedbackVo {
    data?: FeedbackVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultListAreaVo {
    data?: AreaVo[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListAuditDetailVo {
    data?: AuditDetailVo[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListFeedbackCountResultDto {
    data?: FeedbackCountResultDto[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListInstitutionTypeRoleVo {
    data?: InstitutionTypeRoleVo[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListPermissionDataVo {
    data?: PermissionDataVo[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListStageSubjectDto {
    data?: StageSubjectDto[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListString {
    data?: string[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultListSubjectDto {
    data?: SubjectDto[];
    status?: Status;
    timestamp?: number;
}

export interface WebResultLong {
    data?: number;
    status?: Status;
    timestamp?: number;
}

export interface WebResultPaginationFeedbackVo {
    data?: PaginationFeedbackVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultPaginationInstitutionVo {
    data?: PaginationInstitutionVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultPaginationInstitytionPaperAuditListVo {
    data?: PaginationInstitytionPaperAuditListVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultPaginationSurveyPaperAuditListVo {
    data?: PaginationSurveyPaperAuditListVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultPaginationUserInfoVo {
    data?: PaginationUserInfoVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultString {
    data?: string;
    status?: Status;
    timestamp?: number;
}

export interface WebResultUploadVo {
    data?: UploadVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultUserVo {
    data?: UserVo;
    status?: Status;
    timestamp?: number;
}

export interface WebResultVerificationCodeVo {
    data?: VerificationCodeVo;
    status?: Status;
    timestamp?: number;
}
